/*编程题 提示用户输入年月日信息，判断这一天是这一年中的第几天并打印。
四年一闰，百年不闰，四百年再闰
 */

import java.util.Scanner;


public class DateTest {
    public static void main(String[] args) {
        //1 提示用户输入年、月、日并分别用变量存储
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入年:");
        int year = sc.nextInt();
        System.out.print("请输入月份:");
        int moon = sc.nextInt();
        System.out.print("请输入日期：");
        int day = sc.nextInt();
        int sum = 0;
        int[] leapDays = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        int[] commonDays = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        int[] tempDays = new int[12];


        //2 判断月份的有效性
        if (moon < 1 || moon > 12) {
            System.out.println("请重新输入月份，月份有效范围：1-12");
        } else {
            //3 判断日期的有效性
            if (day < 1 || day > 31) {
                System.out.println("请重新输入日期，日期有效范围：1-31");
            }else{
                //4 判断是平年还是闰年并赋值临时的数组
                if (year % 4 == 0 || year % 400 == 0) {
                    System.out.println("这一年是闰年");
                    tempDays = leapDays;

                } else {
                    System.out.println("这一年是平年");
                    tempDays = commonDays;
                }
                //5 计算本月以前的总天数
                for (int i = 0; i < moon - 1; i++) {
                    sum += tempDays[i];
                }
                sum += day;
                System.out.println("这一天是这一年中的第" + sum + "天");
            }
        }
    }
}
